package com.ycz.cglib.load;

import org.springframework.cglib.proxy.LazyLoader;

/**
 * @author ycz
 * @date 2021/7/3
 * @Company © 版权所有 深圳市天行云供应链有限公司
 */
public class ConcreteClassLazyLoader implements LazyLoader {


    /**
     * 需要延迟加载的对象添加代理，在获取该对象属性时先通过代理类回调方法进行对象初始化。
     *
     * 在不需要加载该对象时，只要不去获取该对象内属性，该对象就不会被初始化了
     * @return
     * @throws Exception
     */
    public Object loadObject() throws Exception {
        System.out.println("延迟加载 === LazyLoader loadObject()...");
        PropertyBean bean = new PropertyBean();
        bean.setPropertyName("lazy-load object propertyName!");
        bean.setPropertyValue(11);
        return bean;
    }
}
